package com.dingyx.ps.model.export;

import cn.afterturn.easypoi.excel.annotation.Excel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.io.Serializable;
import java.math.BigDecimal;
import java.time.LocalDateTime;
import java.util.Date;

/**
 * @description 主结算单导出类
 * @author zhangyiming@zencor.cn
 * @date 2021-05-13
 */
@Data
public class AccountBillMasterExport implements Serializable {

    private static final long serialVersionUID = 1L;

    @Excel(name = "结算单号", width = 20,orderNum = "1")
    private String billNo;

    @Excel(name = "任务id", width = 20,orderNum = "2")
    private Long taskMasterId;

    @Excel(name = "任务名称", width = 20,orderNum = "3")
    private String taskName;

    @Excel(name = "商户名称", width = 20,orderNum = "4")
    private String enterpriseName;

    @Excel(name = "工程师名称", width = 20,orderNum = "5")
    private String engineerName;

    @Excel(name = "工程师手机号", width = 20,orderNum = "6")
    private String engineerMobile;

    @Excel(name = "任务佣金", width = 30,orderNum = "7")
    private BigDecimal taskUnitPrice;

    @Excel(name = "结算佣金", width = 30,orderNum = "8")
    private BigDecimal taskUnitPriceActual;

    /**
     * 服务费=任务佣金*服务费比例
     */
    @Excel(name = "服务费", width = 20,orderNum = "9")
    private BigDecimal servicePrice;

    /**
     * 商户结算金额=任务佣金*（1+服务费比例）
     */
    @Excel(name = "商户结算金额", width = 20,orderNum = "10")
    private BigDecimal taskPrice;

    @Excel(name = "退款金额", width = 20,orderNum = "11")
    private String setRefundPrice;

    @Excel(name = "补缴金额", width = 20,orderNum = "12")
    private String paymentPrice;

    @Excel(name = "主结算单状态", width = 20,replace = {"待申请_0","审核中_1","已驳回_2","待结算_3","已到账_4","已取消_5","已结算_6","已申请开票_7","结算中_8","待收款确认_9"},orderNum = "13")
    private Integer billMasterStatus;

    @Excel(name = "结算发起时间", width = 20,exportFormat = "yyyy-MM-dd HH:mm:ss",orderNum = "14")
    private Date createDate;

    @Excel(name = "结算完成时间", width = 20,exportFormat = "yyyy-MM-dd HH:mm:ss",orderNum = "15")
    private Date accountFinishTime;
}

